问题描述
在服务器中设置路由时,可能由于设置错误导致网络出现问题,具体问题场景如下所示:
- 服务器内部使用ping命令时,连接服务器网关失败。
- 使用ping命令连接同网段中的其他不同服务时失败。
问题原因
由于您使用Docker等服务导致在路由表中变更了路由信息。
解决方案
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
- 在服务器中执行以下命令,查看路由表信息。
route -n
系统显示类似如下。 - 根据路由表中的信息,确认出现问题的网卡接口。
- 执行以下命令,对出现问题的网卡接口进行抓包。
说明:网卡接口可能为eth0或eth1,具体以现场实际情况为准。
tcpdump -v -i [$Iface]
说明:[$Iface]为出现问题的网卡接口。
系统显示类似如下,该案例中的数据包显示本机始终在内网网卡中请求获取公网网关的MAC广播报文,由于是在内网网卡中,所以公网网关并没有得到请求报文,因此本机没有获取返回的报文,导致连接网关失败。 - 使用
route del
命令,删除错误的路由信息。 - 使用
route add
命令,添加正确的路由信息。
更多信息
- 表中各个参数含义如下所示:
- 目标网络(Destination):目标网段或者主机。
- 网关(Gateway):网关地址,”*” 表示目标是本主机所属的网络,不需要路由。
- 网络掩码(Genmask):指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。
- Flags各个标志的含义如下所示:
- U:Up,表示此路由当前为启动状态。
- H:Host,表示对某一个特定的服务器的路由。
- G:Gateway,表示路由到一个网关。
- R:Reinstate Route,使用动态路由重新初始化的路由。
- D:Dynamically,该路由是由重定向报文创建的,并且是通过路由守护程序或导向器动态修改的。
- !:表示此路由当前为关闭状态。
- Metric:路由距离,到达指定网络所需的中转数(Linux内核中没有使用)。
- Ref:路由项引用次数(Linux内核中没有使用)。
- Use:此路由项被路由软件查找的次数。
- Iface:该路由表项对应的输出接口。
- 路由器中的路由选择依据包括目的地址、最长匹配、管理距离(Priority)和度量值(Metric)。其中,路由选择过程如下所示:
说明:最长匹配是路由查找时,使用路由表中到达同一目的地的子网掩码最长的路由。
-
- 根据目的地址和最长匹配原则进行查找。
- 若有两条或两条以上路由符合,则查看管理距离,不同路由协议的管理距离值不同。管理距离数值越小,优先级越高。
- 当管理距离相同时,会查看度量值。度量值越小,优先级越高。
适用于
- 云服务器ECS
文档内容是否对您有帮助?